home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / T U R B O Language / Turbo Pascal V7.0 / DOCDEMO.ZIP / NORECVER.PAS < prev    next >
Pascal/Delphi Source File  |  1992-10-30  |  2KB  |  83 lines

  1. {************************************************}
  2. {                                                }
  3. {   Demo program                                 }
  4. {   Copyright (c) 1992 by Borland International  }
  5. {                                                }
  6. {************************************************}
  7.  
  8. { NORECVER.PAS }
  9. { This example doesn't implement constructor-error recovery }
  10.  
  11. type
  12.   LinePtr = ^Line;
  13.   Line = string[79];
  14.  
  15.   BasePtr = ^Base;
  16.   Base = object
  17.     L1, L2: LinePtr;
  18.     constructor Init(S1, S2: Line);
  19.     destructor Done; virtual;
  20.     procedure Dump; virtual;
  21.   end;
  22.  
  23.   DerivedPtr = ^Derived;
  24.   Derived = object(Base)
  25.     L3, L4: LinePtr;
  26.     constructor Init(S1, S2, S3, S4: Line);
  27.     destructor Done; virtual;
  28.     procedure Dump; virtual;
  29.   end;
  30.  
  31. var
  32.   BP: BasePtr;
  33.   DP: DerivedPtr;
  34.  
  35. constructor Base.Init(S1, S2: Line);
  36. begin
  37.   New(L1);
  38.   New(L2);
  39.   L1^ := S1;
  40.   L2^ := S2;
  41. end;
  42.  
  43. destructor Base.Done;
  44. begin
  45.   Dispose(L2);
  46.   Dispose(L1);
  47. end;
  48.  
  49. procedure Base.Dump;
  50. begin
  51.   WriteLn('B: ', L1^, ', ', L2^, '.');
  52. end;
  53.  
  54. constructor Derived.Init(S1, S2, S3, S4: Line);
  55. begin
  56.   Base.Init(S1, S2);
  57.   New(L3);
  58.   New(L4);
  59.   L3^ := S3;
  60.   L4^ := S4;
  61. end;
  62.  
  63. destructor Derived.Done;
  64. begin
  65.   Dispose(L4);
  66.   Dispose(L3);
  67.   Base.Done;
  68. end;
  69.  
  70. procedure Derived.Dump;
  71. begin
  72.   WriteLn('D: ', L1^, ', ', L2^, ', ', L3^, ', ', L4^, '.');
  73. end;
  74.  
  75. begin
  76.   New(BP, Init('Borland', 'International'));
  77.   New(DP, Init('North', 'East', 'South', 'West'));
  78.   BP^.Dump;
  79.   DP^.Dump;
  80.   Dispose(DP, Done);
  81.   Dispose(BP, Done);
  82. end.
  83.